
#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
# @file   : money_challenge.py
# @author : weichy
# @date   : 2019/01/01
# @version: 5.0
# @desc   : 52周存钱挑战
                使用列表有序元素，记录每周的存款数
                使用循环直接计数
                可以灵活设置每周的金额 ，采用函数设计
                20190102根据用户输入 判断第几周 然后输出特定周的存款金额。
'''
import math
import datetime


def save_money_in_n_weeks(money_per_week, increase_moeny, total_week):
    """
    计算n周内的存款金额
    """
    saving = 0  # 账户累计
    money_list = []  # 记录每周存款数列表
    saved_money_list = []  # 记录每周账户累计

#     while i<=total_week:
    for i in range(total_week):
        # 存钱操作
        # saving += money_per_week
        money_list.append(money_per_week)
        saving = math.fsum(money_list)
        saved_money_list.append(saving)

        # 输出信息
        print('第{}周，存入{}元，账户累计{}元.'.format(
            i+1, money_per_week, math.fsum(money_list)))

        # 更新下一周的存钱金额
        money_per_week += increase_moeny
        # i += 1
    return saved_money_list


def main():
    """
    """

    money_per_week = float(input('请输入每周存入的金额'))  # 每周存入的金额
    i = 1  # 记录周数
    increase_moeny = float(input('请输入每周的递增金额'))  # 递增的金额
    total_week = int(float(input('请输入总共的周数')))  # 总共的周数
    # 调入函数
#     saving = save_money_in_n_weeks(money_per_week, increase_moeny, total_week)
    saved_money_list = save_money_in_n_weeks(
        money_per_week, increase_moeny, total_week)
    print('总金额列表', saved_money_list)
    input_date_str = input('请输入日期（yyyy/mm/dd）')
    input_data = datetime.datetime.strptime(input_date_str, '%Y/%m/%d')
#     week_num = int(input('请输入第几周：'))
    week_num = input_data.isocalendar()[1]
    print("第{}周的账户金额为{}。".format(week_num, saved_money_list[week_num-1]))


if __name__ == '__main__':
    main()
